package com.tjetc.controller;

import com.tjetc.common.JsonResult;
import com.tjetc.service.AlipayService;
import com.tjetc.service.OrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/* 支付宝支付使用 */
@CrossOrigin
@RestController
@RequestMapping("/pay")
//@Api(tags = "网站支付宝支付")
@Slf4j
public class AlipayController {

    @Autowired
    private OrderService orderService;

    @Autowired
    private AlipayService alipayService;

    // 会为开发者生成一个HTMI形式的form表单，包含自动提交的脚本
    // 我们将form表单字符串返回给前端程序，前端将会调用自动提交脚本进行表单的提交，
    // 此时，表单会自动提交到Action属性所指向的支付宝开放平台中，从而为用户显示页面
    //@ApiOperation("统一收单下单并支付页面接口的调用")
    @PostMapping("/trade/page/pay") //
    public JsonResult tradePagePay(Integer orderId) {
        return new JsonResult(0, "", orderService.alipay(orderId));
    }

    // 订单完成的异步回调接口
    @PostMapping("/trade/page/notify")
    public JsonResult finishPay(@RequestParam Map<String, String> params){
        return alipayService.finish(params);
    }

    // 处理取消订单的接口
    @PostMapping("/trade/page/cancel")
    public JsonResult cancelPay(Integer orderId) {
        return new JsonResult(0, "", alipayService.close(orderId));
    }

    // 处理退款订单的接口
    @PostMapping("/trade/page/refund")
    public JsonResult refundPay(Integer orderId, String reason) {
        return new JsonResult(0, "", alipayService.refund(orderId, reason));
    }

}
